EN FR
EN FR


Section: Application Domains

Application Domains

Beside the theoretical transfer that can be performed via the cooperations or the scientific publications, an important part of the research done in the Pareo group team is published within software. Tom is our flagship implementation. It is available via the Inria Gforge (http://gforge.inria.fr ) and is one of the most visited and downloaded projects. The integration of high-level constructs in a widely used programming language such as Java may have an impact in the following areas:

  • Teaching: when (for good or bad reasons) functional programming is not taught nor used, Tom is an interesting alternative to exemplify the notions of abstract data type and pattern-matching in a Java object oriented course.

  • Software quality: it is now well established that functional languages such as Caml are very successful to produce high-assurance software as well as tools used for software certification. In the same vein, Tom is very well suited to develop, in Java, tools such as provers, model checkers, or static analyzers.

  • Symbolic transformation: the use of formal anchors makes possible the transformation of low-level data structures such as C structures or arrays, using a high-level formalism, namely pattern matching, including associative matching. Tom is therefore a natural choice each time a symbolic transformation has to be implemented in C or Java for instance. Tom has been successfully used to implement the Rodin simplifier, for the B formal method.

  • Prototyping: by providing abstract data types, private types, pattern matching, rules and strategies, Tom allows the development of quite complex prototypes in a short time. When using Java as the host-language, the full runtime library can be used. Combined with the constructs provided by Tom, such as strategies, this procures a tremendous advantage.

One of the most successful transfer is certainly the use of Tom made by Business Objects/SAP. Indeed, after benchmarking several other rule based languages, they decided to choose Tom to implement a part of their software. Tom is used in Paris, Toulouse and Vancouver. The standard representation provided by Tom is used as an exchange format by the teams of these sites.